/*
 * @Author: Vir
 * @Date: 2021-10-10 01:47:42
 * @Last Modified by: Vir
 * @Last Modified time: 2021-10-10 14:05:53
 */

export type Emoji =
  | '🎨'
  | '⚡️'
  | '🔥'
  | '🐛'
  | '🚑️'
  | '✨'
  | '📝'
  | '🚀'
  | '💄'
  | '🎉'
  | '✅'
  | '🔒️'
  | '🔖'
  | '🚨'
  | '🚧'
  | '💚'
  | '⬇️'
  | '⬆️'
  | '📌'
  | '👷'
  | '📈'
  | '♻️'
  | '➕'
  | '➖'
  | '🔧'
  | '🔨'
  | '🌐'
  | '✏️'
  | '💩'
  | '⏪️'
  | '🔀'
  | '📦️'
  | '👽️'
  | '🚚'
  | '📄'
  | '💥'
  | '🍱'
  | '♿️'
  | '💡'
  | '🍻'
  | '💬'
  | '🗃️'
  | '🔊'
  | '🔇'
  | '👥'
  | '🚸'
  | '🏗️'
  | '📱'
  | '🤡'
  | '🥚'
  | '🙈'
  | '📸'
  | '⚗️'
  | '🔍️'
  | '🏷️'
  | '🌱'
  | '🚩'
  | '🥅'
  | '💫'
  | '🗑️'
  | '🛂'
  | '🩹'
  | '🧐'
  | '⚰️'
  | '🧪'
  | '👔';

export type Entity =
  | '&#x1f3a8;'
  | '&#x26a1;'
  | '&#x1f525;'
  | '&#x1f41b;'
  | '&#128657;'
  | '&#x2728;'
  | '&#x1f4dd;'
  | '&#x1f680;'
  | '&#ff99cc;'
  | '&#127881;'
  | '&#x2705;'
  | '&#x1f512;'
  | '&#x1f516;'
  | '&#x1f6a8;'
  | '&#x1f6a7;'
  | '&#x1f49a;'
  | '&#11015;'
  | '&#11014;'
  | '&#x1F4CC;'
  | '&#x1f477;'
  | '&#x1F4C8;'
  | '&#x2672;'
  | '&#10133;'
  | '&#10134;'
  | '&#x1f527;'
  | '&#128296;'
  | '&#127760;'
  | '&#59161;'
  | '&#58613;'
  | '&#9194;'
  | '&#128256;'
  | '&#1F4E6;'
  | '&#1F47D;'
  | '&#1F69A;'
  | '&#1F4C4;'
  | '&#x1f4a5;'
  | '&#1F371'
  | '&#9855;'
  | '&#128161;'
  | '&#x1f37b;'
  | '&#128172;'
  | '&#128451;'
  | '&#128266;'
  | '&#128263;'
  | '&#128101;'
  | '&#128696;'
  | '&#1f3d7;'
  | '&#128241;'
  | '&#129313;'
  | '&#129370;'
  | '&#8bdfe7;'
  | '&#128248;'
  | '&#128248;'
  | '&#128269;'
  | '&#127991;'
  | '&#127793;'
  | '&#x1F6A9;'
  | '&#x1F945;'
  | '&#x1f4ab;'
  | '&#x1F5D1;'
  | '&#x1F6C2;'
  | '&#x1FA79;'
  | '&#x1F9D0;'
  | '&#x26B0;'
  | '&#x1F9EA;'
  | '&#128084;';

export type Code =
  | ':art:'
  | ':zap:'
  | ':fire:'
  | ':bug:'
  | ':ambulance:'
  | ':sparkles:'
  | ':memo:'
  | ':rocket:'
  | ':lipstick:'
  | ':tada:'
  | ':white_check_mark:'
  | ':lock:'
  | ':bookmark:'
  | ':rotating_light:'
  | ':construction:'
  | ':green_heart:'
  | ':arrow_down:'
  | ':arrow_up:'
  | ':pushpin:'
  | ':construction_worker:'
  | ':chart_with_upwards_trend:'
  | ':recycle:'
  | ':heavy_plus_sign:'
  | ':heavy_minus_sign:'
  | ':wrench:'
  | ':hammer:'
  | ':globe_with_meridians:'
  | ':pencil2:'
  | ':poop:'
  | ':rewind:'
  | ':twisted_rightwards_arrows:'
  | ':package:'
  | ':alien:'
  | ':truck:'
  | ':page_facing_up:'
  | ':boom:'
  | ':bento:'
  | ':wheelchair:'
  | ':bulb:'
  | ':beers:'
  | ':speech_balloon:'
  | ':card_file_box:'
  | ':loud_sound:'
  | ':mute:'
  | ':busts_in_silhouette:'
  | ':children_crossing:'
  | ':building_construction:'
  | ':iphone:'
  | ':clown_face:'
  | ':egg:'
  | ':see_no_evil:'
  | ':camera_flash:'
  | ':alembic:'
  | ':mag:'
  | ':label:'
  | ':seedling:'
  | ':triangular_flag_on_post:'
  | ':goal_net:'
  | ':dizzy:'
  | ':wastebasket:'
  | ':passport_control:'
  | ':adhesive_bandage:'
  | ':monocle_face:'
  | ':coffin:'
  | ':test_tube:'
  | ':necktie:';

export type Name =
  | 'art'
  | 'zap'
  | 'fire'
  | 'bug'
  | 'ambulance'
  | 'sparkles'
  | 'memo'
  | 'rocket'
  | 'lipstick'
  | 'tada'
  | 'white-check-mark'
  | 'lock'
  | 'bookmark'
  | 'rotating-light'
  | 'construction'
  | 'green-heart'
  | 'arrow-down'
  | 'arrow-up'
  | 'pushpin'
  | 'construction-worker'
  | 'chart-with-upwards-trend'
  | 'recycle'
  | 'heavy-plus-sign'
  | 'heavy-minus-sign'
  | 'wrench'
  | 'hammer'
  | 'globe-with-meridians'
  | 'pencil2'
  | 'poop'
  | 'rewind'
  | 'twisted-rightwards-arrows'
  | 'package'
  | 'alien'
  | 'truck'
  | 'page-facing-up'
  | 'boom'
  | 'bento'
  | 'wheelchair'
  | 'bulb'
  | 'beers'
  | 'speech-balloon'
  | 'card-file-box'
  | 'loud-sound'
  | 'mute'
  | 'busts-in-silhouette'
  | 'children-crossing'
  | 'building-construction'
  | 'iphone'
  | 'clown-face'
  | 'egg'
  | 'see-no-evil'
  | 'camera-flash'
  | 'alembic'
  | 'mag'
  | 'label'
  | 'seedling'
  | 'triangular-flag-on-post'
  | 'goal-net'
  | 'animation'
  | 'wastebasket'
  | 'passport-control'
  | 'adhesive-bandage'
  | 'monocle-face'
  | 'coffin'
  | 'test-tube'
  | 'necktie';

export interface GitEmoji {
  emoji: Emoji;
  entity: Entity;
  code: Code;
  description_zh: string;
  description_en: string;
  name: Name;
  semver: string | null;
}

export const gitemoji: GitEmoji[] = [
  {
    emoji: '🎨',
    entity: '&#x1f3a8;',
    code: ':art:',
    description_zh: '',
    description_en: 'Improve structure / format of the code.',
    name: 'art',
    semver: null,
  },
  {
    emoji: '⚡️',
    entity: '&#x26a1;',
    code: ':zap:',
    description_zh: '',
    description_en: 'Improve performance.',
    name: 'zap',
    semver: 'patch',
  },
  {
    emoji: '🔥',
    entity: '&#x1f525;',
    code: ':fire:',
    description_zh: '',
    description_en: 'Remove code or files.',
    name: 'fire',
    semver: null,
  },
  {
    emoji: '🐛',
    entity: '&#x1f41b;',
    code: ':bug:',
    description_zh: '',
    description_en: 'Fix a bug.',
    name: 'bug',
    semver: 'patch',
  },
  {
    emoji: '🚑️',
    entity: '&#128657;',
    code: ':ambulance:',
    description_zh: '',
    description_en: 'Critical hotfix.',
    name: 'ambulance',
    semver: 'patch',
  },
  {
    emoji: '✨',
    entity: '&#x2728;',
    code: ':sparkles:',
    description_zh: '',
    description_en: 'Introduce new features.',
    name: 'sparkles',
    semver: 'minor',
  },
  {
    emoji: '📝',
    entity: '&#x1f4dd;',
    code: ':memo:',
    description_zh: '',
    description_en: 'Add or update documentation.',
    name: 'memo',
    semver: null,
  },
  {
    emoji: '🚀',
    entity: '&#x1f680;',
    code: ':rocket:',
    description_zh: '',
    description_en: 'Deploy stuff.',
    name: 'rocket',
    semver: null,
  },
  {
    emoji: '💄',
    entity: '&#ff99cc;',
    code: ':lipstick:',
    description_zh: '',
    description_en: 'Add or update the UI and style files.',
    name: 'lipstick',
    semver: 'patch',
  },
  {
    emoji: '🎉',
    entity: '&#127881;',
    code: ':tada:',
    description_zh: '',
    description_en: 'Begin a project.',
    name: 'tada',
    semver: null,
  },
  {
    emoji: '✅',
    entity: '&#x2705;',
    code: ':white_check_mark:',
    description_zh: '',
    description_en: 'Add, update, or pass tests.',
    name: 'white-check-mark',
    semver: null,
  },
  {
    emoji: '🔒️',
    entity: '&#x1f512;',
    code: ':lock:',
    description_zh: '',
    description_en: 'Fix security issues.',
    name: 'lock',
    semver: 'patch',
  },
  {
    emoji: '🔖',
    entity: '&#x1f516;',
    code: ':bookmark:',
    description_zh: '',
    description_en: 'Release / Version tags.',
    name: 'bookmark',
    semver: null,
  },
  {
    emoji: '🚨',
    entity: '&#x1f6a8;',
    code: ':rotating_light:',
    description_zh: '',
    description_en: 'Fix compiler / linter warnings.',
    name: 'rotating-light',
    semver: null,
  },
  {
    emoji: '🚧',
    entity: '&#x1f6a7;',
    code: ':construction:',
    description_zh: '',
    description_en: 'Work in progress.',
    name: 'construction',
    semver: null,
  },
  {
    emoji: '💚',
    entity: '&#x1f49a;',
    code: ':green_heart:',
    description_zh: '',
    description_en: 'Fix CI Build.',
    name: 'green-heart',
    semver: null,
  },
  {
    emoji: '⬇️',
    entity: '&#11015;',
    code: ':arrow_down:',
    description_zh: '',
    description_en: 'Downgrade dependencies.',
    name: 'arrow-down',
    semver: 'patch',
  },
  {
    emoji: '⬆️',
    entity: '&#11014;',
    code: ':arrow_up:',
    description_zh: '',
    description_en: 'Upgrade dependencies.',
    name: 'arrow-up',
    semver: 'patch',
  },
  {
    emoji: '📌',
    entity: '&#x1F4CC;',
    code: ':pushpin:',
    description_zh: '',
    description_en: 'Pin dependencies to specific versions.',
    name: 'pushpin',
    semver: 'patch',
  },
  {
    emoji: '👷',
    entity: '&#x1f477;',
    code: ':construction_worker:',
    description_zh: '',
    description_en: 'Add or update CI build system.',
    name: 'construction-worker',
    semver: null,
  },
  {
    emoji: '📈',
    entity: '&#x1F4C8;',
    code: ':chart_with_upwards_trend:',
    description_zh: '',
    description_en: 'Add or update analytics or track code.',
    name: 'chart-with-upwards-trend',
    semver: 'patch',
  },
  {
    emoji: '♻️',
    entity: '&#x2672;',
    code: ':recycle:',
    description_zh: '',
    description_en: 'Refactor code.',
    name: 'recycle',
    semver: null,
  },
  {
    emoji: '➕',
    entity: '&#10133;',
    code: ':heavy_plus_sign:',
    description_zh: '',
    description_en: 'Add a dependency.',
    name: 'heavy-plus-sign',
    semver: 'patch',
  },
  {
    emoji: '➖',
    entity: '&#10134;',
    code: ':heavy_minus_sign:',
    description_zh: '',
    description_en: 'Remove a dependency.',
    name: 'heavy-minus-sign',
    semver: 'patch',
  },
  {
    emoji: '🔧',
    entity: '&#x1f527;',
    code: ':wrench:',
    description_zh: '',
    description_en: 'Add or update configuration files.',
    name: 'wrench',
    semver: 'patch',
  },
  {
    emoji: '🔨',
    entity: '&#128296;',
    code: ':hammer:',
    description_zh: '',
    description_en: 'Add or update development scripts.',
    name: 'hammer',
    semver: null,
  },
  {
    emoji: '🌐',
    entity: '&#127760;',
    code: ':globe_with_meridians:',
    description_zh: '',
    description_en: 'Internationalization and localization.',
    name: 'globe-with-meridians',
    semver: 'patch',
  },
  {
    emoji: '✏️',
    entity: '&#59161;',
    code: ':pencil2:',
    description_zh: '',
    description_en: 'Fix typos.',
    name: 'pencil2',
    semver: 'patch',
  },
  {
    emoji: '💩',
    entity: '&#58613;',
    code: ':poop:',
    description_zh: '',
    description_en: 'Write bad code that needs to be improved.',
    name: 'poop',
    semver: null,
  },
  {
    emoji: '⏪️',
    entity: '&#9194;',
    code: ':rewind:',
    description_zh: '',
    description_en: 'Revert changes.',
    name: 'rewind',
    semver: 'patch',
  },
  {
    emoji: '🔀',
    entity: '&#128256;',
    code: ':twisted_rightwards_arrows:',
    description_zh: '',
    description_en: 'Merge branches.',
    name: 'twisted-rightwards-arrows',
    semver: null,
  },
  {
    emoji: '📦️',
    entity: '&#1F4E6;',
    code: ':package:',
    description_zh: '',
    description_en: 'Add or update compiled files or packages.',
    name: 'package',
    semver: 'patch',
  },
  {
    emoji: '👽️',
    entity: '&#1F47D;',
    code: ':alien:',
    description_zh: '',
    description_en: 'Update code due to external API changes.',
    name: 'alien',
    semver: 'patch',
  },
  {
    emoji: '🚚',
    entity: '&#1F69A;',
    code: ':truck:',
    description_zh: '',
    description_en: 'Move or rename resources (e.g.: files, paths, routes).',
    name: 'truck',
    semver: null,
  },
  {
    emoji: '📄',
    entity: '&#1F4C4;',
    code: ':page_facing_up:',
    description_zh: '',
    description_en: 'Add or update license.',
    name: 'page-facing-up',
    semver: null,
  },
  {
    emoji: '💥',
    entity: '&#x1f4a5;',
    code: ':boom:',
    description_zh: '',
    description_en: 'Introduce breaking changes.',
    name: 'boom',
    semver: 'major',
  },
  {
    emoji: '🍱',
    entity: '&#1F371',
    code: ':bento:',
    description_zh: '',
    description_en: 'Add or update assets.',
    name: 'bento',
    semver: 'patch',
  },
  {
    emoji: '♿️',
    entity: '&#9855;',
    code: ':wheelchair:',
    description_zh: '',
    description_en: 'Improve accessibility.',
    name: 'wheelchair',
    semver: 'patch',
  },
  {
    emoji: '💡',
    entity: '&#128161;',
    code: ':bulb:',
    description_zh: '',
    description_en: 'Add or update comments in source code.',
    name: 'bulb',
    semver: null,
  },
  {
    emoji: '🍻',
    entity: '&#x1f37b;',
    code: ':beers:',
    description_zh: '',
    description_en: 'Write code drunkenly.',
    name: 'beers',
    semver: null,
  },
  {
    emoji: '💬',
    entity: '&#128172;',
    code: ':speech_balloon:',
    description_zh: '',
    description_en: 'Add or update text and literals.',
    name: 'speech-balloon',
    semver: 'patch',
  },
  {
    emoji: '🗃️',
    entity: '&#128451;',
    code: ':card_file_box:',
    description_zh: '',
    description_en: 'Perform database related changes.',
    name: 'card-file-box',
    semver: 'patch',
  },
  {
    emoji: '🔊',
    entity: '&#128266;',
    code: ':loud_sound:',
    description_zh: '',
    description_en: 'Add or update logs.',
    name: 'loud-sound',
    semver: null,
  },
  {
    emoji: '🔇',
    entity: '&#128263;',
    code: ':mute:',
    description_zh: '',
    description_en: 'Remove logs.',
    name: 'mute',
    semver: null,
  },
  {
    emoji: '👥',
    entity: '&#128101;',
    code: ':busts_in_silhouette:',
    description_zh: '',
    description_en: 'Add or update contributor(s).',
    name: 'busts-in-silhouette',
    semver: null,
  },
  {
    emoji: '🚸',
    entity: '&#128696;',
    code: ':children_crossing:',
    description_zh: '',
    description_en: 'Improve user experience / usability.',
    name: 'children-crossing',
    semver: 'patch',
  },
  {
    emoji: '🏗️',
    entity: '&#1f3d7;',
    code: ':building_construction:',
    description_zh: '',
    description_en: 'Make architectural changes.',
    name: 'building-construction',
    semver: null,
  },
  {
    emoji: '📱',
    entity: '&#128241;',
    code: ':iphone:',
    description_zh: '',
    description_en: 'Work on responsive design.',
    name: 'iphone',
    semver: 'patch',
  },
  {
    emoji: '🤡',
    entity: '&#129313;',
    code: ':clown_face:',
    description_zh: '',
    description_en: 'Mock things.',
    name: 'clown-face',
    semver: null,
  },
  {
    emoji: '🥚',
    entity: '&#129370;',
    code: ':egg:',
    description_zh: '',
    description_en: 'Add or update an easter egg.',
    name: 'egg',
    semver: 'patch',
  },
  {
    emoji: '🙈',
    entity: '&#8bdfe7;',
    code: ':see_no_evil:',
    description_zh: '',
    description_en: 'Add or update a .gitignore file.',
    name: 'see-no-evil',
    semver: null,
  },
  {
    emoji: '📸',
    entity: '&#128248;',
    code: ':camera_flash:',
    description_zh: '',
    description_en: 'Add or update snapshots.',
    name: 'camera-flash',
    semver: null,
  },
  {
    emoji: '⚗️',
    entity: '&#128248;',
    code: ':alembic:',
    description_zh: '',
    description_en: 'Perform experiments.',
    name: 'alembic',
    semver: 'patch',
  },
  {
    emoji: '🔍️',
    entity: '&#128269;',
    code: ':mag:',
    description_zh: '',
    description_en: 'Improve SEO.',
    name: 'mag',
    semver: 'patch',
  },
  {
    emoji: '🏷️',
    entity: '&#127991;',
    code: ':label:',
    description_zh: '',
    description_en: 'Add or update types.',
    name: 'label',
    semver: 'patch',
  },
  {
    emoji: '🌱',
    entity: '&#127793;',
    code: ':seedling:',
    description_zh: '',
    description_en: 'Add or update seed files.',
    name: 'seedling',
    semver: null,
  },
  {
    emoji: '🚩',
    entity: '&#x1F6A9;',
    code: ':triangular_flag_on_post:',
    description_zh: '',
    description_en: 'Add, update, or remove feature flags.',
    name: 'triangular-flag-on-post',
    semver: 'patch',
  },
  {
    emoji: '🥅',
    entity: '&#x1F945;',
    code: ':goal_net:',
    description_zh: '',
    description_en: 'Catch errors.',
    name: 'goal-net',
    semver: 'patch',
  },
  {
    emoji: '💫',
    entity: '&#x1f4ab;',
    code: ':dizzy:',
    description_zh: '',
    description_en: 'Add or update animations and transitions.',
    name: 'animation',
    semver: 'patch',
  },
  {
    emoji: '🗑️',
    entity: '&#x1F5D1;',
    code: ':wastebasket:',
    description_zh: '',
    description_en: 'Deprecate code that needs to be cleaned up.',
    name: 'wastebasket',
    semver: 'patch',
  },
  {
    emoji: '🛂',
    entity: '&#x1F6C2;',
    code: ':passport_control:',
    description_zh: '',
    description_en:
      'Work on code related to authorization, roles and permissions.',
    name: 'passport-control',
    semver: 'patch',
  },
  {
    emoji: '🩹',
    entity: '&#x1FA79;',
    code: ':adhesive_bandage:',
    description_zh: '',
    description_en: 'Simple fix for a non-critical issue.',
    name: 'adhesive-bandage',
    semver: 'patch',
  },
  {
    emoji: '🧐',
    entity: '&#x1F9D0;',
    code: ':monocle_face:',
    description_zh: '',
    description_en: 'Data exploration/inspection.',
    name: 'monocle-face',
    semver: null,
  },
  {
    emoji: '⚰️',
    entity: '&#x26B0;',
    code: ':coffin:',
    description_zh: '',
    description_en: 'Remove dead code.',
    name: 'coffin',
    semver: null,
  },
  {
    emoji: '🧪',
    entity: '&#x1F9EA;',
    code: ':test_tube:',
    description_zh: '',
    description_en: 'Add a failing test.',
    name: 'test-tube',
    semver: null,
  },
  {
    emoji: '👔',
    entity: '&#128084;',
    code: ':necktie:',
    description_zh: '',
    description_en: 'Add or update business logic',
    name: 'necktie',
    semver: 'patch',
  },
];
